/**
 * 类是什么？分类归类
 * 面向对象（万物皆对象）
 * 人、物体、食品、生活用品都可成为对象
 * 对象有很多种，我们可以用类的概念将对象进行整合分类
 */

//语法：class 类的名称（开头用大写字母）
//描述一个人的类
class Person{

    //人的特征（类的属性、参数）
    id:number;
    name:string;
    //构造方法
    constructor(name:string) {//创建对象传进来的参数
        //this.name   是编写类时创建的属性
        this.name=name//赋值
    }
    //人的行为
    action(params:string):string {
        return `${this.name}在${params}`//`${}`模板字符串
    }
}
//类的使用需要实例化（创建）
let p = new Person('张三')//这里的参数时传递给constructor构造方法中定义的参数
console.log(p.action("吃饭"));

//类的继承通过extends进行继承的
//可以继承父类中的属性、方法
class Doctor extends Person {

    //子类的构造方法，创建子类时传递参数
    constructor(name:string) {
        super(name) //初始化父类的构造方法，把父类属性继承过来
    }

    work(params:string):string{
        return `${this.name}在${params}`
    }
}
//创建医生子类的对象
let d=new Doctor('王医生')
console.log(d.action('工作'));
console.log(d.work("看诊"));


